﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data;
using CustomsSystem.BLL;
using CustomsSystem.Model;
using Maticsoft.Common;
namespace WEB.Code
{
    public partial class codeIndex : System.Web.UI.Page
    {
        public DataSet ds;
        CustomsSystem.BLL.info_document DocBLL = new CustomsSystem.BLL.info_document();
        WorkflowManage WMBLL = new WorkflowManage();
        SheetInfoManage SM = new SheetInfoManage();
        CustomerManage CM = new CustomerManage();

        protected void Page_Load(object sender, EventArgs e)
        {
            
            if (!IsPostBack)
            {
                //获取由增加，修改页面返回的代码类别
                if (Request.QueryString["AddType"] != "")
                {
                    string codeID = Convert.ToString(Request.QueryString["AddType"]);
                    DropDownList1.SelectedValue = codeID;
                }
            }
            //Gridview获取数据
            CodeManage codeManage = new CodeManage();
            ds = codeManage.GetList(" codeType='".Trim() + DropDownList1.Text.Trim() + "'".Trim());
            gvcodeManager.DataSource = ds;
            gvcodeManager.DataBind();
            
        }

        //查询按钮
        //protected void Button1_Click(object sender, EventArgs e)
        //{
           
        //        CodeManager codeManage = new CodeManager();
        //        ds = codeManage.GetList(" codeType='".Trim() + DropDownList1.Text.Trim() + "'".Trim());
        //        gvcodeManager.DataSource = ds;
        //        gvcodeManager.DataBind();
            
        //}
        //弹出增加代码页面
        protected void Button2_Click(object sender, EventArgs e)
        {
            string type = DropDownList1.SelectedItem.Value;
            Response.Redirect("AddCode.aspx?type="+type);
        }
        #region 编辑
        protected void gvcodeManager_RowEditing(object sender, GridViewEditEventArgs e)
        {
        //    //判断是否已用
        //    gvcodeManager.SelectedIndex = e.NewEditIndex;
        //    Session["codeType"]=DropDownList1.SelectedValue;
        //    Session["codeTypeName"] = DropDownList1.SelectedItem.Text;
        //    int codeID =Convert.ToInt32( gvcodeManager.SelectedRow.Cells[0].Text);
        //    string codena = gvcodeManager.SelectedRow.Cells[1].Text;
        //    #region 判断代码是否使用
        //    //判断代码是否使用
        //    switch (DropDownList1.SelectedItem.Text)
        //    {
        //        //货物类别
        //        case "货物类别":
        //            ds = SM.GetList("goodsType=" + codeID);

        //            if (ds.Tables[0].Rows.Count != 0)
        //            {
        //                MessageBox.Show(this, "该代码已使用,不可以编辑");
        //                return;
        //            }
        //            break;
        //        //币种类别
        //        case "币种类别":
        //            ds = SM.GetList("Currency=" + codeID);
        //            if (ds.Tables[0].Rows.Count != 0)
        //            {
        //                MessageBox.Show(this, "该代码已使用,不可以编辑");
        //                return;
        //            }
        //            break;
        //        //单位类别
        //        case "单位类别":
        //            ds = SM.GetList("unitType=" + codeID);
        //            if (ds.Tables[0].Rows.Count != 0)
        //            {
        //                MessageBox.Show(this, "该代码已使用,不可以编辑");
        //                return;
        //            }
        //            break;
        //        //进出口类别
        //        case "进出口类别":
        //            ds = SM.GetList("inoutType=" + codeID);
        //            if (ds.Tables[0].Rows.Count != 0)
        //            {
        //                MessageBox.Show(this, "该代码已使用,不可以编辑");
        //                return;
        //            }
        //            break;
        //        //贸易方式
        //        case "贸易方式":
        //            ds = SM.GetList("tradeType=" + codeID);
        //            if (ds.Tables[0].Rows.Count != 0)
        //            {
        //                MessageBox.Show(this, "该代码已使用,不可以编辑");
        //                return;
        //            }
        //            break;
        //        //单证类别
        //        case "单证类别":
        //            ds = DocBLL.GetList("docType=" + codeID);
        //            if (ds.Tables[0].Rows.Count != 0)
        //            {
        //                MessageBox.Show(this, "该代码已使用,不可以编辑");
        //                return;
        //            }
        //            break;
        //        //业务环节编号
        //        case "业务环节编号":
        //            ds = WMBLL.GetList("busType=" + codeID);
        //            if (ds.Tables[0].Rows.Count != 0)
        //            {
        //                MessageBox.Show(this, "该代码已使用,不可以编辑");
        //                return;
        //            }
        //            break;
        //        //企业类别
        //        case "企业类别":
        //            ds = CM.GetList("clientType=" + codeID);
        //            if (ds.Tables[0].Rows.Count != 0)
        //            {
        //                MessageBox.Show(this, "该代码已使用,不可以编辑");
        //                return;
        //            }
        //            break;
        //    }
        //    #endregion
        //    Response.Redirect("ChanceCode.aspx?ID="+codeID);
        }
        #endregion  // 

        protected void gvcodeManager_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int id = Convert.ToInt32(gvcodeManager.Rows[e.RowIndex].Cells[0].Text);
            string code1 = DropDownList1.SelectedItem.Text;
            string codeType = DropDownList1.Text;
            #region 判断代码是否使用
            //判断代码是否使用
            switch (code1)
            {
                //货物类别
                case "货物类别":
                    ds = SM.GetList("goodsType=" + id);

                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用，不可以删除");
                        return;
                    }
                    break;
                //币种类别
                case "币种类别":
                    ds = SM.GetList("Currency=" + id);
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用，不可以删除");
                        return;
                    }
                    break;
                //单位类别
                case "单位类别":
                    ds = SM.GetList("No like '&" + gvcodeManager.Rows[e.RowIndex].Cells[1].Text + "'");
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用，不可以删除");
                        return;
                    }
                    break;
                //进出口类别
                case "进出口类别":
                    ds = SM.GetList("inOut=" + id);
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用，不可以删除");
                        return;
                    }
                    break;
                //贸易方式
                case "贸易方式":
                    ds = SM.GetList("tradeType=" + id);
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用，不可以删除");
                        return;
                    }
                    break;
                //单证类别
                case "单证类别":
                    ds = DocBLL.GetList("codeName='" + gvcodeManager.Rows[e.RowIndex].Cells[1].Text + "'");
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用，不可以删除");
                        return;
                    }
                    break;
                //业务环节编号
                case "业务环节编号":
                    ds = WMBLL.GetList("busType=" + id);
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用，不可以删除");
                        return;
                    }
                    break;
                //企业类别
                case "企业类别":
                    ds = CM.GetList("CustomerType=" + id);
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用，不可以删除");
                        return;
                    }
                    break;
            }
            #endregion

           CodeManage codeManage = new CodeManage();
            if (codeManage.Delete(codeType, id))
            {
                  Response.Write("<Script>alert('删除成功!')</script>");

                  ds = codeManage.GetList(" codeType='".Trim() + DropDownList1.Text.Trim() + "'".Trim());
                  gvcodeManager.DataSource = ds;
                  gvcodeManager.DataBind();
                  return;
            }
            else
            {
                  Response.Write("<Script>alert('删除失败!')</script>");
                  return;
            }
        }

        protected void gvcodeManager_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            
                gvcodeManager.PageIndex = e.NewPageIndex;
                //gvCustomerManage.DataSource = dt;
                gvcodeManager.DataBind();//重新绑定GridView数据的函�?
            
        }

        protected void gvcodeManager_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //如果是绑定数据行         
            if (e.Row.RowType == DataControlRowType.DataRow)         
            {             
                if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)            
                {          
                    ((LinkButton)e.Row.Cells[3].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除：\"" + e.Row.Cells[1].Text + "\"�?')");           
                }      
            } 
        }

        protected void gvcodeManager_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            string index = e.CommandArgument.ToString(); //那行被选中,取出选中行的索引 
            if (e.CommandName == "BianJi")
            {
            //判断是否已用
            gvcodeManager.SelectedIndex =Convert.ToInt32( e.CommandArgument.ToString());
            Session["codeType"]=DropDownList1.SelectedValue;
            Session["codeTypeName"] = DropDownList1.SelectedItem.Text;
            int codeID =Convert.ToInt32( gvcodeManager.SelectedRow.Cells[0].Text);
            string codena = gvcodeManager.SelectedRow.Cells[1].Text;
            #region 判断代码是否使用
            //判断代码是否使用
            switch (DropDownList1.SelectedItem.Text)
            {
                //货物类别
                case "货物类别":
                    ds = SM.GetList("goodsType=" + codeID);

                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用,不可以编辑");
                        return;
                    }
                    break;
                //币种类别
                case "币种类别":
                    ds = SM.GetList("Currency=" + codeID);
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用,不可以编辑");
                        return;
                    }
                    break;
                //单位类别
                case "单位类别":
                    ds = SM.GetList("No like '%" + gvcodeManager.Rows[Convert.ToInt32(index)].Cells[1].Text + "'");
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用,不可以编辑");
                        return;
                    }
                    break;
                //进出口类别
                case "进出口类别":
                    ds = SM.GetList("inOut=" + codeID);
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用,不可以编辑");
                        return;
                    }
                    break;
                //贸易方式
                case "贸易方式":
                    ds = SM.GetList("tradeType=" + codeID);
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用,不可以编辑");
                        return;
                    }
                    break;
                //单证类别
                case "单证类别":
                    ds = DocBLL.GetList("codeName like '%" + gvcodeManager.Rows[Convert.ToInt32(index)].Cells[1].Text + "'");
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用,不可以编辑");
                        return;
                    }
                    break;
                //业务环节编号
                case "业务环节编号":
                    ds = WMBLL.GetList("busType=" + codeID);
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用,不可以编辑");
                        return;
                    }
                    break;
                //企业类别
                case "企业类别":
                    ds = CM.GetList("CustomerType=" + codeID);
                    if (ds.Tables[0].Rows.Count != 0)
                    {
                        MessageBox.Show(this, "该代码已使用,不可以编辑");
                        return;
                    }
                    break;
            }
            #endregion
            Response.Redirect("ChanceCode.aspx?ID="+codeID);
            }
        }

        protected void btDate_Click(object sender, EventArgs e)
        {
            Response.Redirect("../WorkDate/WorkDateset.aspx");
        }
    
    }
}